@echo off
setlocal enabledelayedexpansion

REM ================= 配置路径 =================
set BASE_DIR=C:\Users\Administrator\IdeaProjects\sparrow\example_message
set PROTO_DIR=%BASE_DIR%\proto
set OUT_DIR=%BASE_DIR%\client_proto
set PROTOC_PATH=%BASE_DIR%\protoc.exe

if not exist "%OUT_DIR%" mkdir "%OUT_DIR%"

REM ================ 遍历 proto 文件并生成 =================
for /r "%PROTO_DIR%" %%F in (*.proto) do (
	REM echo %%F
	REM == 提取目录
	set DIR=%%~dpF
	REM == 去掉最后一个反斜杠
	set DIR=!DIR:~0,-1!
	REM ==去掉PROTO_DIR前缀
	set DIR=!DIR:%PROTO_DIR%=!
	REM ==拼接OUT_DIR前缀
	set DST_DIR=%OUT_DIR%!DIR!
	REM echo "outDir=" "!DST_DIR!"
	REM == 创建目标目录（如果不存在）
    if not exist "!DST_DIR!" mkdir "!DST_DIR!"
	REM == 调用 protoc 生成文件
    "%PROTOC_PATH%" --proto_path="%PROTO_DIR%" --csharp_out="!DST_DIR!" "%%F"
)


